#include <sys/soundcard.h>  
#include <stdio.h> 
#include <stdlib.h>
#include <sys/types.h>  
#include <sys/stat.h>  
#include <fcntl.h>  

/*
 *	2013/2/19	16:59	yin
 */

int main()  
{  
	/* id：读取音频文件描述符；fd：写入的文件描述符。i，j为临时变量*/  
	int id,fd,i,j;  
	/* 存储音频数据的缓冲区，可以调整*/  
	char testbuf[4096];  


	/* 打开声卡设备，失败则退出*/  
	if ( ( id = open ( "/dev/audio", O_RDWR ) ) < 0 ) {  
		fprintf (stderr, " Can't open sound device!\n");  
		exit ( -1 ) ;  
	}  

	/* 打开输出文件，失败则退出*/  
	if ( ( fd = open ("test.wav",O_RDWR))<0) {  
		fprintf ( stderr, " Can't open output file!\n");  
		exit (-1 );  
	}  

	/* 读取一定数量的音频数据，并将之写到输出文件中去*/  
	for ( j=0; j<10;) {  
		i=read(id,testbuf,4096);  

		if(i>0) {  
			write(fd,testbuf,i);  
			j++;  
		}  
	}  

	/* 关闭输入、输出文件*/  
	close(fd);  
	close(id);  

	return 0;
}  


/*
 * http://blog.csdn.net/liuchao35758600/article/details/6880910
 */
